IAxis.CyclicSwitch 方法

使用轴位置来控制重复触发数位输出的开关。当轴达到特定的位置,开关即开启或关闭,开关可透过轴向前或向后移动的方向来控制。

命名空间IntervalZero.KINGSTAR.Base.Class

组合: IntervalZero.KINGSTAR.Base.Class (于 IntervalZero.KINGSTAR.Base.dll) 版本:4.4.0.0

语法

C#VB
void DigitalCamSwitch(
       McOutput output,
       double startPosition,
       McCamSwitch cyclicSwitch,
       McLengthType intervalType,
       double interval,
       McLengthType durationType,
       double duration,
       McSource valueSource
)
Sub DigitalCamSwitch(
       output As McOutput,
       startPosition As Double,
       cyclicSwitch As McCamSwitch,
       intervalType As McLengthType,
       interval As Double,
       durationType As McLengthType,
       duration As Double,
       valueSource As McSource
)

参数

output

型别:McOutput

选择对应轨道所控制的数位输出。

 

startPosition

型别:double

开关开启的位置。

 

cyclicSwitch

型别:McCamSwitch

控制开关动作。

 

intervalType

型别:McLengthType

Interval 类型。可使用 mcDistance 与 mcTime。

 

interval

型别:double

周期长度。依照所选的 IntervalType 而定,值必须为正。

 

durationType

型别:McLengthType

Duration 类型。可使用 mcDistance 与 mcCount。

 

duration

型别:double

周期重复的持续时间,依照所选的 DurationType 而定,值必须为正。

 

valueSource

型别:McSource

定义轴值的来源,例如位置:

备注

使用案例:

以下案例虽来自于 RT/Win32 介面,但有助于理解周期开关的运作方式。

案例 1

循环开关在持续时间内完成其任务。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,    //TrackNumber
   40,   //FirstOnPosition 
   60,   //LastOnPosition
   1,    //AxisDirection. 1 = Positive.
   0,    //CamSwitchMode. 0 = Position.
   0     //Duration. It is not used in this case.
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcDistance,    //IntervalType
   100,           //Interval
   mcDistance,    //DurationType
   250,           //Duration
   mcSetValue     //ValueSource
);

案例 2

循环开关在完成任务之前中止。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,        //TrackNumber
   0,        //FirstOnPosition
   0,        //LastOnPosition
   1,        //AxisDirection. 1 = Positive.
   1,        //CamSwitchMode. 1 = Time.
   0.003     //Duration
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcTime,        //IntervalType
   0.005,         //Interval
   mcCount,       //DurationType
   3,             //Duration
   mcSetValue     //ValueSource
);

参见

IAxis 介面

IntervalZero.KINGSTAR.Base.Class 命名空间